#include <iostream>
#include <cuda_runtime.h>
using namespace std;

// cuda加法
__global__ void add(float a, float b, float* result)
{
    *result = a + b;
}

int main()
{
    float a = 2.1;
    float b = 3.2;
    float ret;

    // 申请显卡设备 cuda 分配内存
    float* d_ret;
    cudaMalloc((void**)&d_ret, sizeof(float));  // cudaMalloc分配内存

    // 加法 -- 调用核函数
    add <<<1, 1 >>> (a, b, d_ret);  // <<<block,thread>>>  block:线程块数量  thread:线程数量
    cudaMemcpy(&ret, d_ret, sizeof(float), cudaMemcpyDeviceToHost);  // 将结果拷贝到主机内存
    cout << "a + b = " << ret << endl;

    // 释放显卡设备 cuda内存
    cudaFree(d_ret);

    return 0;
}